package org.me.weixin;

import me.chanjar.weixin.common.exception.WxErrorException;
import me.chanjar.weixin.cp.api.WxCpInMemoryConfigStorage;
import me.chanjar.weixin.cp.api.WxCpServiceImpl;
import me.chanjar.weixin.cp.bean.WxCpMessage;
import me.chanjar.weixin.cp.bean.WxCpMessage.WxArticle;

public class TestSendMessage {
	public static void main(String[] args) throws WxErrorException {
		String appid = "1";
		
		WxCpInMemoryConfigStorage config = new WxCpInMemoryConfigStorage();
		config.setCorpId("wx9d8febf595539f94"); // 设置微信企业号的appid
		config.setCorpSecret("E1qSgHbnqgY3vlV-N7ZzDs9hw2WMnIYmk4vSr9PIbGbFDUnvUk44QnMg8wfhTmbw"); // 设置微信企业号的app
																									// corpSecret
		config.setAgentId(appid); // 设置微信企业号应用ID
		config.setToken("3a2FCcGjszijfT"); // 设置微信企业号应用的token
		config.setAesKey("MCx4YMqX0VK1NdOsRsUi4QQtCvlzqn90MxP6ygLL8wj"); // 设置微信企业号应用的EncodingAESKey

		WxCpServiceImpl wxCpService = new WxCpServiceImpl();
		wxCpService.setWxCpConfigStorage(config);

		/**
		 * UserID列表（消息接收者，多个接收者用‘|’分隔）。特殊情况：指定为@all，则向关注该企业应用的全部成员发送
		 */
		String userId = "wangweiu";
		WxCpMessage message1 = createTextMessage(userId, appid);
		wxCpService.messageSend(message1);
		WxCpMessage message2 = createNews(userId, appid);
		wxCpService.messageSend(message2);

		// 设置菜单
		// WxMenu wxMenu = new WxMenu();
		// List<WxMenuButton> buttons = new ArrayList<WxMenu.WxMenuButton>();
		// // button 是 一级菜单数组，个数应为1~3个
		// // sub_button 否 二级菜单数组，个数应为1~5个
		// // type 是 菜单的响应动作类型，目前有click、view两种类型
		// // name 是 菜单标题，不超过16个字节，子菜单不超过40个字节
		// // key click类型必须 菜单KEY值，用于消息接口推送，不超过128字节
		// // url view类型必须 网页链接，员工点击菜单可打开链接，不超过256字节
		//
		// WxMenuButton btnClick = new WxMenuButton();
		// btnClick.setName("点我啊");
		// btnClick.setType("click");
		// btnClick.setKey("BTN_C");
		//
		// WxMenuButton btnTwoLayer = new WxMenuButton();
		// btnTwoLayer.setName("两级菜单");
		//
		// btnTwoLayer.setSubButtons(Arrays.asList(new WxMenuButton[] {
		// new WxMenuButton() {
		// {
		// setName("点我啊2");
		// setType("click");
		// setKey("BTN_C2");
		// }
		// }, new WxMenuButton() {
		// {
		// setName("百度");
		// setType("view");
		// setUrl("https://www.baidu.com/");
		// }
		// } }));
		// // 菜单的响应动作类型，目前有click、view两种类型
		//
		// buttons.add(btnTwoLayer);
		// buttons.add(btnClick);
		// wxMenu.setButtons(buttons);
		// // 设置菜单
		// wxCpService.menuCreate(wxMenu);
	}

	private static WxCpMessage createNews(String userId, String appid) {
		WxArticle wxArticle = new WxArticle();
		wxArticle
				.setUrl("http://news.163.com/15/0820/10/B1F3R2SN0001124J.html");
		wxArticle.setTitle("爆炸物报警");
		wxArticle
				.setPicUrl("http://img1.cache.netease.com/catchpic/9/90/90B0CA96FFB9DFA49A50990578EC5571.jpg");
		wxArticle.setDescription("爆炸物报警描述");
		WxCpMessage message2 = WxCpMessage.NEWS().agentId(appid).toUser(userId)
				.addArticle(wxArticle).build();
		return message2;
	}

	private static WxCpMessage createTextMessage(String userId, String appid) {
		// @all 全部
		WxCpMessage message1 = WxCpMessage.TEXT().agentId(appid).toUser(userId)
				.content("报警测试").build();
		return message1;
	}

}
